home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 04 geoProgramming / LA50SR.BIN / la50 (.txt) next >
Encoding:
GEOS ConVerT  |  1990-02-12  |  7.5 KB  |  303 lines

  1. SEQ formatted GEOS file V1.0
  2. LA-50
  3. PAGES
  4. BLASTER'S CONVERTER V2.5
  5. Write Image V1.1
  6. Red Storm
  7. geoWrite    V1.1
  8.   This file was created with
  9. Wrong is Write.
  10.   Written by Joe Buckley.
  11. .if    Pass1
  12. .include    geosSym
  13. .include    geosMac
  14. .endif
  15. .include    LA50Const
  16. ProgStart:
  17. ;    jump table
  18. ;    pcheck,prline,prdone,prsize
  19.     jmp    pstart
  20.     jmp    prline
  21.     jmp    prdone
  22.     jmp    prsize
  23.     jmp    prntas
  24.     jmp    strtas
  25.     jmp    setnlq
  26.     .byte    "la-50",0
  27. popen:
  28. ;    OPEN rs232 port
  29.     jsr    InitForIO
  30.     LoadB    $dd0d,$7f    ; turn off timer int
  31.     LoadW    NMIVEC,nmirtn    ; set nmi vector
  32.     lda    #$01    ; set file name
  33.     ldx    #<prname
  34.     ldy    #>prname
  35.     jsr    SETNAM
  36.     lda    #$02    ; set channel DataPntr
  37.     ldy    #$00
  38.     jsr    SETLFS
  39.     jsr    CBM_OPEN    ; CBM_OPEN file
  40.     ClrB    $0296
  41.     sta    $029a
  42.     LoadB    $0295,$07
  43.     LoadB    $0299,$d6    ; 4800 bps
  44.     MoveW    WorkPntr,Work_Pntr
  45.     LoadW    ROBUF,RS_buffer
  46.     ldx    #$02    ; set output channel
  47.     jsr    CHKOUT
  48.     lda    $dd0d    ; ???
  49. pclose:
  50. ;    CLOSE rs232 port
  51.     ldx    #$08    ; wait 2.048 sec
  52.     lda    flag
  53.     bne    1$
  54.     ldx    #$01    ; wait .256 sec
  55. 1$    jsr    DelayLoop
  56.     jsr    CLRCHN    ; clr output chan
  57.     lda    #$02    ; CLOSE it
  58.     jsr    CLOSE
  59.     jmp    DoneWithIO    ; CLOSE serial comm
  60. pstart:
  61.     ClrB    count
  62.     ldx    #$00
  63. prsize:
  64. ;    return page size
  65.     ldx    #80    ; 90 lines/80 cols
  66.     ldy    #90
  67.     lda    #00
  68. prdone:
  69.     lda    
  70. ASCII
  71.     beq    1$
  72.     PushW    r1
  73.     PushB    r0L
  74.     sta    r1L
  75.     PushB    r0H
  76.     sta    r1H
  77.     LoadW    r0,640
  78.     jsr    ClearRam
  79.     PopB    r0H
  80.     PopB    r0L
  81.     PopW    r1
  82.     jsr    prline
  83. 1$    jsr    popen
  84.     lda    #$0c    ; Form Feed
  85.     jsr    CHROUT
  86.     jmp    pclose
  87. prline:
  88.     LoadB    ASCII,<TRUE
  89.     jsr    popen
  90.     lda    count
  91.     bne    1$
  92.     jmp    line1
  93. 1$    cmp    #$01
  94.     bne    2$
  95.     jmp    line2
  96. 2$    jmp    line3
  97. Print_Buffer:
  98.     MoveW    Work_Pntr,WorkPntr
  99.     inc    WorkPntr+1
  100.     ldy    #$df
  101. 1$    lda    (WorkPntr),y
  102.     bne    3$
  103.     bne    1$
  104.     lda    (WorkPntr),y
  105.     bne    3$
  106.     dec    WorkPntr+1
  107. 2$    lda    (WorkPntr),y
  108.     bne    3$
  109.     bne    2$
  110.     lda    (WorkPntr),y
  111. 3$    sta    flag
  112.     bne    OK_Print_Buffer
  113. OK_Print_Buffer:
  114.     MoveW    Work_Pntr,WorkPntr
  115.     LoadB    NumCards,$4f
  116. 1$    LoadB    Bits2Roll,$08
  117.     ldy    #$05
  118. 2$    MoveB    "(WorkPntr),y","Data2Roll,y"
  119.     bpl    2$
  120. 3$    ldx    #$05
  121.     lda    #$00
  122. 4$    rol    Data2Roll,x
  123.     rol    a
  124.     bpl    4$
  125.     add    #$3f
  126.     jsr    CHROUT
  127.     jsr    CHROUT
  128.     dec    Bits2Roll
  129.     bne    3$
  130.     jsr    
  131. IncWorkPntr
  132.     jsr    
  133. IncWorkPntr
  134.     jsr    
  135. IncWorkPntr
  136.     dec    NumCards
  137.     bpl    1$
  138. IncDataPntr:
  139.     AddVW    $08,DataPntr
  140. IncWorkPntr:
  141.     AddVW    $02,WorkPntr
  142. IncPntr1:
  143.     AddVW    $02,Pointer1
  144. IncPntr2:
  145.     AddVW    $04,Pointer2
  146. grafix:
  147.     LoadW    r15,grmode
  148.     jmp    SendString    ; enter graphic mode
  149. groff:
  150.     LoadW    r15,exit
  151.     jmp    SendString    ; exit graphic mode
  152. doasci:
  153.     LoadW    r15,asctxt
  154.     jmp    SendString    ; enter/exit ascii
  155. donlq:
  156.     LoadW    r15,nlqtxt
  157. SendString:
  158.     ldy    #$00
  159. 1$    lda    (r15),y
  160.     beq    2$
  161.     jsr    CHROUT
  162.     bne    1$
  163. 2$    rts
  164. line1:
  165.     LoadW    Pointer1,store1-$06
  166.     jsr    grafix
  167.     ldx    #$4f
  168. 1$    ldy    #$05
  169. 2$    MoveB    "(DataPntr),y","(WorkPntr),y"
  170.     bpl    2$
  171.     ldy    #$06
  172.     MoveB    "(DataPntr),y","(Pointer1),y"
  173.     MoveB    "(DataPntr),y","(Pointer1),y"
  174.     jsr    IncPntr1    ; inc Pointer1 by 2
  175.     jsr    IncDataPntr    ; inc DataPntr by 8
  176.     jsr    IncWorkPntr    ; inc WorkPntr by 6
  177.     jsr    IncWorkPntr    ; (3 lines)
  178.     jsr    IncWorkPntr
  179.     bpl    1$
  180.     jsr    Print_Buffer
  181.     jsr    groff
  182.     inc    count
  183.     jmp    pclose    ; close then rts
  184. line2:
  185.     LoadW    Pointer1,store1
  186.     LoadW    Pointer2,store2-$04
  187.     jsr    grafix
  188.     ldx    #$4f
  189. 1$    ldy    #$00
  190.     MoveB    "(Pointer1),y","(WorkPntr),y"
  191.     MoveB    "(Pointer1),y","(WorkPntr),y"
  192.     jsr    IncPntr1    ; inc Pointer1 by 2
  193.     jsr    IncWorkPntr    ; inc WorkPntr by 2
  194.     ldy    #$03
  195. 2$    MoveB    "(DataPntr),y","(WorkPntr),y"
  196.     bpl    2$
  197.     ldy    #$07
  198. 3$    MoveB    "(DataPntr),y","(Pointer2),y"
  199.     cpy    #$04
  200.     bpl    3$
  201.     jsr    IncWorkPntr    ; inc WorkPntr by 4
  202.     jsr    IncWorkPntr    ; (2 lines)
  203.     jsr    IncPntr2    ; inc Pointer2 by 4
  204.     jsr    IncDataPntr    ; inc DataPntr by 8
  205.     bpl    1$
  206.     jsr    Print_Buffer
  207.     jsr    groff
  208.     inc    count
  209.     jmp    pclose    ; close then rts
  210. line3:
  211.     LoadW    Pointer1,store1
  212.     LoadW    Pointer2,store2
  213.     MoveW    DataPntr,Data_Pntr
  214.     jsr    grafix
  215.     ldx    #$4f
  216. 1$    ldy    #$03
  217. 2$    MoveB    "(Pointer2),y","(WorkPntr),y"
  218.     bpl    2$
  219.     jsr    IncPntr2    ; inc Pointer2 by 4
  220.     jsr    IncWorkPntr    ; inc WorkPntr by 4
  221.     jsr    IncWorkPntr    ; (2 lines)
  222.     ldy    #$00
  223.     MoveB    "(DataPntr),y","(WorkPntr),y"
  224.     MoveB    "(DataPntr),y","(WorkPntr),y"
  225.     jsr    IncDataPntr    ; inc DataPntr by 8
  226.     jsr    IncWorkPntr    ; inc WorkPntr by 2
  227.     bpl    1$
  228.     jsr    Print_Buffer
  229.     jsr    groff
  230.     jsr    pclose
  231. line3b:
  232.     jsr    popen
  233.     lda    Data_Pntr
  234.     add    #$02
  235.     sta    DataPntr
  236.     lda    Data_Pntr+1
  237.     adc    #$00
  238.     sta    DataPntr+1
  239.     MoveW    Work_Pntr,WorkPntr
  240.     jsr    grafix
  241.     ldx    #$4f
  242. 1$    ldy    #$05
  243. 2$    MoveB    "(DataPntr),y","(WorkPntr),y"
  244.     bpl    2$
  245.     jsr    IncDataPntr    ; inc DataPntr by 8
  246.     jsr    IncWorkPntr    ; inc WorkPntr by 6
  247.     jsr    IncWorkPntr    ; (3 lines)
  248.     jsr    IncWorkPntr
  249.     bpl    1$
  250.     jsr    Print_Buffer
  251.     jsr    groff
  252.     ClrB    count
  253.     jmp    pclose    ; close then rts
  254. prntas:
  255.     ClrB    ASCII
  256.     jsr    popen
  257.     jsr    doasci
  258.     lda    nlq
  259.     beq    1$
  260.     jsr    donlq
  261. 1$    ldy    #$00
  262.     lda    (DataPntr),y
  263.     beq    3$
  264.     cmp    #$0d
  265.     bne    2$
  266.     lda    #$0a
  267.     jsr    CHROUT    ; send linefeed
  268. 2$    jsr    CHROUT    ; send char
  269.     IncW    DataPntr
  270.     bra    1$
  271. 3$    jsr    doasci
  272.     ldx    #$08
  273.     lda    nlq
  274.     bne    4$
  275.     ldx    #$04
  276. 4$    jsr    DelayLoop
  277.     jmp    pclose    ; close then rts
  278. DelayLoop:
  279.     ldy    #$00
  280. 1$    jsr    $eeb3    ; Wait
  281.     bne    1$
  282.     bne    1$
  283. setnlq:
  284.     LoadB    nlq,$01
  285. strtas:
  286.     ClrB    nlq
  287.     sta    flag
  288. nlq:    .byte    $00
  289. flag:    .byte    $00
  290. count:    .byte    $00
  291. ASCII
  292. :    .byte    $00
  293. prname:    .byte    10    ; 2400 baud
  294. grmode:    .byte    27,80,113,33,56,48,63,0
  295. nlqtxt:    .byte    27,91,49,119,27,91,50,34,122,0
  296. asctxt:    .byte    27,91,49,119,27,91,49,34,122,0
  297. exit:    .byte    45,27,92,0
  298. RS_buffer:    .block    256    ; 256 byte RS-232 buffer
  299. store1:    .block    160
  300. store2:    .block    320
  301. ProgEnd:
  302. TIME, DATE    Page PAGE
  303.